<?php
abstract class AbstractApplication
{

	/**
	 * @var object Cargador de contexto para esta aplicación.
	 */
	protected $contextLoader = null;

	/**
	 * @var boolean Indica si el modelo fue cargado.
	 */
	protected $modelLoaded = false;

	/**
	 * @var AbstractModel Instancia del modelo de datos utilizado.
	 */
	protected $model = null;

	/**
	 * @var boolean Indica si la aplicación ya fue ejecutada y ha finalizado las operaciones.
	 */
	public $loadComplete = false;

	/**
	 * Devuelve un objeto AbstractModel que representa al modelo cargado.
	 */
	public abstract function getModel();

	/**
	 * Devuelve el cargador de contexto de la aplicación.
	 */
	public abstract function getContextLoader();

	/**
	 * Devuelve el cargador de contexto de la aplicación.
	 */
	public abstract function getResponse();

	/**
	 * Devuelve el objeto AbstractRequest que representa a la peticion actual.
	 */
	public abstract function getRequest();
}
?>
